
// 导出页面为PDF格式
import html2Canvas from 'html2canvas';
import JsPDF from 'jspdf';

export const htmlToPdf = async (dom, title) => {
    var pdfTitle = title;  //pdf的名称
    var pdfDom = document.querySelector(dom);
    html2Canvas(pdfDom, {
        allowTaint:false,
        useCORS: true
    }).then(function (canvas) {
        console.log(canvas);
        const marginBottom = 34;    // 项目页面显示微处理 以下用到的地方 可以忽略
        let canvasWidth = canvas.width;     //页面生成canvas宽度
        let canvasHeight = canvas.height + marginBottom; //页面生成canvas高度
        let pageHeight = canvasWidth / 592.28 * 841.89 + marginBottom;   //分页 每页的高度
        let allPageHeight = canvasHeight;  // 所有页面的高度
        let position = 0; //偏移量
        let imgWidth = 595.28; //生成canvas 图片的宽度
        let imgHeight = 592.28 / canvasWidth * canvasHeight; //生成canvas 图片的高度
        let pageData = canvas.toDataURL('image/jpeg', 3.0);
        let PDF = new JsPDF('', 'pt', 'a4');
        if (allPageHeight < pageHeight) {
            PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight);
        } else {
            //循环生成分页
            while (allPageHeight > 0) {
                PDF.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight);
                allPageHeight = allPageHeight - pageHeight - marginBottom;
                position = position - 841.89 - marginBottom;
                if (allPageHeight > 0) {
                    PDF.addPage(); //添加新的一页
                }
            }
        }
        PDF.save(pdfTitle + '.pdf');  //保存pdf
    });

};









